package cn.tannn.cat.file.server.controller.manage.vo;

import cn.tannn.cat.file.sdk.config.Aws3Config;
import cn.tannn.cat.file.sdk.config.LocalConfig;
import cn.tannn.cat.file.sdk.config.MinioConfig;
import cn.tannn.cat.file.sdk.config.QiNiuConfig;
import cn.tannn.cat.file.sdk.enums.StorageMaster;
import cn.tannn.cat.file.server.common.CommonVO;
import com.alibaba.fastjson2.JSONObject;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * 存储器配置
 *
 * @author tnnn
 * @version V1.0
 * @date 2024-03-09 20:49
 */
@Schema(description = "存储器配置VO" )
@ToString
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class FileStorageConfigVO extends CommonVO<FileStorageConfigVO> {

    /**
     * 配置名
     */
    @Schema(description ="配置名")
    private String name;

    /**
     * 字典值[Dict.value]
     */
    @Schema(description ="字典值[Dict.value]")
    private String storage;

    /**
     * 是否为主配置
     * @see StorageMaster
     */
    @Schema(description ="是否为主配置[0从 1主]")
    private StorageMaster master;

    /**
     * 存储配置Json
     * @see Aws3Config
     * @see LocalConfig
     * @see MinioConfig
     * @see QiNiuConfig
     */
    @Schema(description ="存储配置Json")
    private JSONObject config;


    /**
     * 备注
     */
    @Schema(description ="备注")
    private String remark;
}
